<?php
require("../../../libraries/config.php");
require("../../../libraries/dbclass2.php");
require("../../../libraries/function.php");
require("../../../libraries/simple_html_dom.php");

require("../../../libraries/cache.php");
require("../../../libraries/modules/user/user.php");

 function user_check_email($email)
	{
		$pattern="/^[a-zA-Z]{1,}[a-zA-Z0-9\_\-\.]+\@[a-zA-Z0-9]{3,}(\.[a-zA-Z]{2,})+$/";
		if(!preg_match($pattern,$email)){
			return false;
		}
		return true;
	}
	
function user_check_username($username)
	{	
		//======6->20 letter, only alphanumeric and space
		$pattern="/^[a-zA-Z0-9\@\.\-]{6,35}$/";
		if(!preg_match($pattern,$username))
		{
			return false;
		}
		return true;
	}
	function user_check_name($username)
	{	
		//======6->20 letter, only alphanumeric and space
		$pattern="/^(.){6,45}$/";
		if(!preg_match($pattern,$username))
		{
			return false;
		}
		return true;
	}

function user_before_update($data,$primary,$xcrud){
	$db=new db;
	$db->connect();
	$db->query("select * from users where id=".intval($_SESSION['user']['id']));
	if($db->num_rows()==1){
		  $row=$db->fetchOne();
		  //Chỉ được đổi tên username khi username cũ bằng undefined hoặc rỗng
		  if($row['username']=='undefined'||$row['username']==''){
			  //$username mới
			  $username=$data->get('username');
			  //Nếu username mới không bằng username cũ lấy trong db, user đã thay đổi username
			  if($username!=$row['username']){
			  	//Thay doi thong tin username
					$ch1=user_check_username($username);
					if($ch1==false){
						$xcrud->set_exception('username','Username không hợp lệ, user chỉ bao gồm ký tự và chữ số, có chiều dài từ 5 đến 35 ký tự','error');
					}else{
							
							$db->query("select id from users where username ='".$username."'");
							if($db->num_rows()>=1){
								$xcrud->set_exception('username','Username này đã tồn tại, xin vui lòng chọn username khác','error');
							}
					}// End check user hop le
				//End thay doi thong tin username
			  }else{// End $username!=$row['username']
			  	$xcrud->set_exception('username','Username không hợp lệ, Xin vui lòng cập nhật username mới','error');
			  }
		  }else{//End kiem tra truong hop username =undefined hoặc rỗng
		  //Blog user change username ------------
		    $username=$data->get('username');
			if($username!=''){
				  if($username!=$row['username']){
						$xcrud->set_exception('username','Bạn không có quyền thay đổi Username','error');
				  }
			}
		  }
		  
		    if($row['email']=='undefined'||$row['email']==''){
			  $email=$data->get('email');
			  if($email!=$row['email']){
			  	//Thay doi thong tin username
					$ch1=user_check_email($username);
					if($ch1==false){
						$xcrud->set_exception('email','Email không hợp lệ','error');
					}else{
							
							$db->query("select id from users where email ='".$email."' and username!='".$_SESSION['user']['username']."'");
							if($db->num_rows()>0){
								$xcrud->set_exception('email','Email này đã tồn tại, xin vui lòng chọn email khác','error');
							}
					}// End check user hop le
				//End thay doi thong tin username
			  }else{// End $username!=$row['username']
			  $xcrud->set_exception('email','Email không hợp lệ, Xin vui lòng cập nhật email mới','error');
			  }
		  }else{//End kiem tra truong hop username =undefined
		 	  $email=$data->get('email');
			  if($email!=''){
				  if($email!=$row['email']){
					   $xcrud->set_exception('email','Bạn không có quyền thay đổi email '.$email,'error');
				  }
			  }
		  }
		  
		  
		 
		  
		  //---------- CHECK NAME -----------
		  if($row['name']=='undefined'|| $row['name']==''){
			  
			  $name=$data->get('name');
			  if($name!=$row['name']&&$name!=''){
			  	//Thay doi thong tin username
					$ch1=user_check_name($name);
					if($ch1==false){
						$xcrud->set_exception('name','Tên Không hợp lệ - Tên phải không có ký tự đặc biệt','error');
					}else{
							
							$db->query("select id from users where username !='".$_SESSION['user']['username']."' and name='".$name."'");
							if($db->num_rows()>0){
								$xcrud->set_exception('name','Tên này đã được người khác sử dụng, xin vui lòng chọn tên khác','error');
							}
					}// End check user hop le
				//End thay doi thong tin username
			  }// End $username!=$row['username']

		  }else{
			  	
			    $name=$data->get('name');
			
				if($name!=$row['name'] && $name!=''){
					if($row['changename']!=1){
					
						$xcrud->set_exception('name','Bạn không có quyền cập nhật lại Tên, mỗi user chỉ được cập nhật 1 lần thôi nhé','error');
					}else{
							$ch1=user_check_name($name);
							if($ch1==false){
								 $xcrud->set_exception('name','Tên Không hợp lệ - Tên phải không có ký tự đặc biệt, độ dài từ 3 đến 30 ký tự   ','error');
							}
					}
				}
				
		  
		  }
		   //---------- END CHECK NAME -----------
		   
		   //START CHECK CHU KY--------
		   $chuky=$data->get("chuky");
		   if($chuky!='' && $chuky!=$row['chuky']){
		    	$html=str_get_html($chuky);
				$error=true;
				
				$vl1=$html->find("img");
				if(count($vl1)>0){
						$mess="Chữ Ký Không được phép có hình Ảnh . ";
						$error=false;
				}
				
				$vl1=$html->find("a");
				if(count($vl1)>0){
						$mess="Chữ Ký Không được phép có link . ";
						$error=false;
				}
				
				if(strpos($chuky,'youtube')!==false){
					$mess="Chữ Ký Không được chén Youtube Video . ";
					$error=false;
				}
				
				if($error==false){
					$xcrud->set_exception('chuky',$mess,'error');
				}
		   
		   }
		   //END CHECK CHU KY
		  
		  
	}else{
		$xcrud->set_exception('username','Có lỗi xảy ra, xin vui lòng thông báo BQT để xử lý','error');
	}
	

}

function user_after_update($data,$primary,$xcrud){
	$avatar=$data->get("image");
	if($avatar!=''){
		$url=HOME."images/user/".$avatar;
		//Redirect Image Topicasa
		
				$url=user_picasa_remote($url);
	
				$db=new db;
				$db->connect();
				$sql="update users set avatar='".$url."',image='' where id=".$primary;
				$db->nonquery($sql);
				$db->close();
		
		//$db->nonquery("update users set avatar='".$url."' where id=".$primary);
	}
	
	$db=new db;
	$db->connect();
	$db->query("select * from users where id=".intval($_SESSION['user']['id']));
	$data=$db->fetchOne();
	if($data['name']!=$_SESSION['user']['name']){
	//Tên đã thay đổi, set changename=0, moi user chi duoc thay doi name 1 lan thoi nhe
	$db->nonquery("update users set changename=0 where id=".intval($_SESSION['user']['id']));
	}
	$db->close();
	//Gan lai session cho user
	user_login_session($data);
	
	
}